home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d949.lha / BBBBS / BBBBS65.lha / rexx / EditUsers.rexx < prev    next >
OS/2 REXX Batch file  |  1991-12-06  |  1KB  |  56 lines

  1. /* EditUsers.rexx  -  writes one word in one line for ALL bbs userfiles */
  2.  
  3. SAY '*** WARNING ***  This can change ALL user data! Be sure!  *** WARNING ***'
  4.  
  5. linenumber=''
  6. wordnumber=''
  7. newvalue=''
  8. doit=''
  9. PARSE ARG linenumber wordnumber newvalue doit .
  10. IF ~DATATYPE(linenumber,'N') | ~DATATYPE(wordnumber,'N') THEN
  11.   SIGNAL USAGE
  12. IF UPPER(newvalue)='DOIT' THEN
  13.   DO
  14.     doit='DOIT'
  15.     newvalue=''
  16.   END
  17.  
  18. IF UPPER(doit)='DOIT' THEN doit=1
  19. ELSE doit=0
  20. userlist=SHOWDIR('BBBBS:Users')
  21. DO i=1 TO WORDS(userlist)
  22.   x=OPEN(f,'BBBBS:Users/'WORD(userlist,i),'R')
  23.   IF x=0 THEN ITERATE i
  24.   lines.=''
  25.   DO j=1
  26.     line=READLN(f)
  27.     IF EOF(f) THEN LEAVE j
  28.     lines.j=line
  29.   END
  30.   CALL CLOSE(f)
  31.   lines.0=j-1
  32.   IF WORDS(lines.linenumber)>=wordnumber THEN
  33.     DO
  34.       windx=WORDINDEX(lines.linenumber,wordnumber)
  35.       lines.linenumber=DELWORD(lines.linenumber,wordnumber,1)
  36.       IF windx=1 THEN lines.linenumber=newvalue'  'STRIP(lines.linenumber)
  37.       ELSE lines.linenumber=INSERT(newvalue' ',lines.linenumber,windx-1)
  38.       IF doit THEN
  39.         DO
  40.           x=OPEN(f,'BBBBS:Users/'WORD(userlist,i),'W')
  41.           IF x=0 THEN ITERATE i
  42.           DO j=1 TO lines.0
  43.             CALL WRITELN(f,STRIP(lines.j))
  44.           END
  45.           CALL CLOSE(f)
  46.         END
  47.     END
  48.   SAY lines.linenumber WORD(userlist,i)
  49. END
  50. EXIT
  51.  
  52. USAGE:
  53. SAY 'Usage> rx EditUsers linenumber wordnumber newvalue DOIT'
  54. SAY 'Test your selection first, then add the DOIT at the end.'
  55. EXIT
  56.